我创建了一个示例Promise,据我所知,所有变量都已声明且所有方括号均已关闭,但所有内容都已匹配,但我得到的错误无法返回,那么不确定。谁能对此提供解释?感谢您的所有帮助。
function mySandwich(data) {
new Promise(function(resolve, reject) {
if (data > 5) {
resolve(data);
} else {
reject('no data');
}
});
}
mySandwich(5)
.then(function(data) {
console.log('promise 1 num is' + data);
})
.catch(function(err) {
console.log(err);
});
答案 0 :(得分:3)
您需要从Promise
返回mySandwich
function mySandwich(data) {
return new Promise(function (resolve, reject) {
if (data > 5) {
resolve(data);
} else {
reject("no data");
}
});
}
mySandwich(5)
.then(function (data) {
console.log("promise 1 num is" + data);
})
.catch(function (err) {
console.log(err);
});
function mySandwich(data) {
return new Promise(function (resolve, reject) {
if (data > 5) {
resolve(data);
} else {
reject("no data");
}
});
}
mySandwich(5)
.then(function (data) {
console.log("promise 1 num is" + data);
})
.catch(function (err) {
console.log(err);
});
答案 1 :(得分:0)
mySandwich是一个函数,不返回任何东西。根据您的代码
mySandwich(5)
.then(function (data) {
console.log("promise 1 num is" + data);
})
.catch(function (err) {
console.log(err);
});
它期望从函数返回一个承诺。这就是为什么您得到此错误无法返回然后未定义的原因。 您只需要在mySandwhich中添加一个返回值即可。
function mySandwich(data) {
return new Promise(function (resolve, reject) {
if (data > 5) {
resolve(data);
} else {
reject("no data");
}
});
}