- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
正如我们所知,Promise 构造函数采用一个执行函数,该函数具有两个参数,我们使用它们来生成成功案例或失败案例。今天我在编程,我被卡住了,但后来我解决了这个问题,但我发现了一件事需要理解。
有什么区别
new Promise(resolve => {
// resolve
});
和
new Promise((resolve,reject)=>{
// resolve
// reject
});
我们可以这样做吗?
new Promise(resolve => {
// resolve
}, reject => {
// reject
});
例子会更受欢迎。谢谢!!!
最佳答案
这不是特定于 Promises,只是回调函数。
new Promise((resolve) => {});
1 创建一个 Promise,其回调只接受 resolve
参数。无法调用本应提供的拒绝函数。2
new Promise((resolve, reject) => {});
创建一个 Promise,其回调采用两个参数,包括用于拒绝的参数。
以上两个示例演示了位置参数的工作原理。回调函数中的第一个参数始终是 resolve 函数,第二个参数始终是 reject 函数。
new Promise((reject, resolve) => {});
将创建一个 Promise,您可以在其中使用 reject
解决并使用 resolve< 拒绝
.
您可以在回调函数的范围内throw
或resolve(Promise.reject())
来导致拒绝发生:
new Promise((resolve) => {
throw new Error("42");
// or `resolve(Promise.reject(new Error("42")));`
})
.catch(console.warn); // Prints warning “Error: "42"” in the console.
您不能使用 new Promise((resolve) => {}, (reject) => {});
,因为 Promise
构造函数只接受一个参数。第二个回调函数将被忽略。
1:(resolve) => {}
当然等同于 resolve => {}
。但是箭头函数参数实际上总是需要括号。简单参数和单个参数是唯一的异常(exception),它们可以省略。查看MDN article about arrow function syntax .
2:使用常规函数,new Promise(function(resolve){});
或 new Promise(function(){});
你可以 access any argument使用 arguments[0]
(resolve)或 arguments[1]
(reject)。
关于javascript - Promise((resolve,reject)=>{}) 和 Promise(resolve =>{}) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51826848/
我一直在努力理解下面两个的区别,哪个是空闲的使用方式: let getClient = () => { return connect() .then((client) => {
我正在学习一门关于 JavaScript 函数式编程的很棒的在线类(class)。在讲师使用 Array.prototype.reject() 并且它在运行时对我不起作用之前,我一直很好。 我想使用“
这个问题在这里已经有了答案: Do I need to return after early resolve/reject? (6 个答案) 关闭 6 年前。 我是 Promise 的新手,我想知道
我对 Angular JS deferred 和 $q 感到困惑。我找到了这个 SO Question这解释了 $q.defer() 和 $q 之间的区别。它解释了 $q.reject is a sh
我正在尝试处理 Angular $q 服务及其相关对象和 API。当我查看控制台中的对象时,我看到: var deferred = $q.defer() ...(and then from conso
我在运行测试时遇到问题(在 Node 中), 我正在模拟一个被拒绝的 promise ,我的代码应该重试(使用 promise-retry 如果可能相关的话)。 当我使用 stub.returns(P
当我编译或运行它时,程序会显示正确的信息。问题是当我检查程序时。它显示“:(拒绝”“分钟检查我的时等待输入被拒绝时超时”程序。我也尝试使用 GetInt 和 get_int 。你能帮助我吗,请? in
对于 Ruby 中的 Hash,reject! 和 reject 与 delete_if 有何不同?谁能用简单的代码片段解释它们之间的区别? 最佳答案 由于其他答案指的是 Array#delete_i
当我尝试使用 Firestore 获取数据时,出现上述错误 - 我正在尝试从数据库检索 token ,以便可以发送消息: exports.getUsers = functions.https.onRe
这个问题在这里已经有了答案: Are JavaScript forever-pending promises bad? (2 个答案) 关闭 4 年前。 问题是这样的 function demo()
您好,我正在尝试调用返回 promise 的异步函数 makeRemoteExecutableSchema。 async function run() { const schema = await
我发出的每个 http 请求似乎都会出现此错误。我不太确定它来自哪里? (node:39390) UnhandledPromiseRejectionWarning:未处理的 promise 拒绝(拒绝
我的代码运行良好,但今天运行时发生了这种情况: (node:8592) UnhandledPromiseRejectionWarning: Unhandled promise rejection (r
我正在尝试从 mlabs 连接 mongodb。我插入了以下代码: Mongoose.connect('mongodb://:@ds163402.mlab.com:63402/projecttwist
我已将 Cucumber 与 nightwatch.js 集成。 我的 package.json 看起来像:- { "name": "learning-nightwatch", "versio
目前,我在“Javascript”代码中遇到了 promise 问题。它不断抛出“TypeError: res.status(...).json(...).catch is not a functio
首先,请看这个demo。 function loadImageAsync(url) { return new Promise(function(resolve, reject) { var
我已经在这个问题上工作了很长时间,但我无法真正解决它。当我执行 ionic Cordova build android 时,它运行良好,直到它到达 Cordova build android,任何人都
不知道是什么导致了这个问题。昨天它运行良好。今天,当我尝试运行 react-native run-android 时。我收到这个错误。有任何想法吗? Starting JS server... Run
我是第一次使用.then,而不是.then我使用回调函数。 下面是我的代码片段: phantom.create().then(function (ph) { ph.createPage().t
我是一名优秀的程序员,十分优秀!