我有一个带有异步函数的JS promise。如何从异步函数内部解析或拒绝该函数?这是一个示例代码......
create table `users` (
`id`INT(11) NOT NULL AUTO_INCREMENT,
`user_email_address` VARCHAR(250) NOT NULL,
) ENGINE = InnoDB DEFAULT CHARSET = UTF8;
答案 0 :(得分:3)
您的异步功能需要某种方式让外部世界知道何时有报告内容。一些异步函数需要回调。如果是这种情况,您可以通过一个回复来调用您的承诺resolve()
:
let promise = new Promise(function(resolve, reject) {
asynchronousFunction((val) => { // < -- pass a callback into the function
resolve(val)
});
}).then(function(response) {
console.log("recieved: ", response)
});
function asynchronousFunction(cb) {
//mimic asynchronous action...
setTimeout(function() {
cb("some return value") // <-- call the callback here withthe return value
}, 1000)
}
&#13;
如果你控制了异步功能,你应该让它直接返回一个承诺:
function asynchronousFunction() {
//mimic asynchronous action...
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve("some return value") withthe return value
}, 1000)
})
}
// call it:
asynchronousFunction()
.then(val => console.log(val))
&#13;