javascript - 向 then() 提供一个函数参数的 Promise

标签 javascript es6-promise

     let promise = new Promise(resolve => {
   setTimeout(() => resolve("done!"), 1000);
    });
  promise.then(alert); // shows "done!" after 1 second

//在上面的代码片段中,当我们没有在警报中传递任何参数时,警报如何获取“done”值

最佳答案

对于 Promise,可以返回两种情况:Accept(成功)Reject(失败)。通常我们会做这样的事情来实现 promise 响应,正如你在这里看到的,我们使用 2 个临时变量来发出警报,如果成功,则结果变量将发出警报,如果失败,则错误变量将发出警报。

let promise = new Promise(function(resolve, reject) {
  setTimeout(() => reject(new Error("Whoops!")), 1000);
});

// reject runs the second function in .then
promise.then(
  result => alert(result), // doesn't run
  error => alert(error) // shows "Error: Whoops!" after 1 second
);

如果您只对成功完成感兴趣,那么您可以使用它。

let promise = new Promise(resolve => {
  setTimeout(() => resolve("done!"), 1000);
});

promise.then(alert); // shows "done!" after 1 second

它的作用是什么?它实际上会得到“完成”的结果,并且由于您已经应用了警报,“完成”将被传递给警报,如下所示 alert("done") .

要直接捕获,您可以使用以下命令:

let promise = new Promise((resolve,reject) => {
  setTimeout(() => reject("failed!"), 1000);
});

promise.catch(alert); // shows "failed!" after 1 second

关于javascript - 向 then() 提供一个函数参数的 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53276481/

相关文章:

javascript - 如何判断 RxJS 的版本号

javascript - 在 Javascript 中使用闭包的好例子

javascript - 在 Node.js 中设置模型的正确方法

javascript - 如何运行从客户端接收到的 JavaScript(html、js)?

javascript - 如何保证多个 promise 的解决顺序?

JavaScript 格式当前时间和二十分钟后

java - 如何使用 javascript 在警告框中显示特殊字符?

javascript - jquery mobile 翻转切换开关以更新列表

reactjs - 使用axios限速的建议

validation - 使用 redux-form 和 Fetch API 进行服务器验证