原因:resolve/reject只能改变promise的状态,但是reject和resolve都无法让函数剩下的部分暂停执行。 解决方式:通常情况下,会在需要返回的resolve/reject后,加上return,进行终止js流程的操作。 function test(a, b) {return new Promise((resolve, reject) => {if (a === 1) {console.log(1)reject(1)return}if...
这里推荐在 reject 后面显示使用return,使后面的代码不执行,如: functiondivide(numerator,denominator){returnnewPromise((resolve,reject)=>{if(denominator===0){reject('Cannot divide by 0');return;}console.log('other some operating');constres=numerator/denominator;resolve(res);});}divide(5,0).then(...
new Promise为什么要放到return里?写法1 let queryData = function queryData() { return new Promise((resolve, reject) => { }); }; let qu = queryData(); qu.then(xxx); 写法2 let queryData = new Promise((resolve, reject) => { }); }; let qu = queryData; qu.then(xxx); 写法1 和...
function fetchData() { return new Promise((resolve, reject) => { //这里可以进行一些异步操作,比如发送网络请求、读取文件等 if (/*操作成功*/) { resolve('操作成功'); //将Promise的状态从pending变为fulfilled } else { reject('操作失败'); //将Promise的状态从pending变为rejected } }); } fet...
经过一番研究,得出结论:不可能实现直接将Promise.then中的值return出来。 正确的使用方式只能是:return出Promise对象,然后在.then的执行体中处理异步请求得到的值(或者用async/await)。 1. 返回 Promise 对象 function foo() {returnnewPromise((resolve, reject) =>{ ...
类),接受一个匿名函数,该函数接受两个参数,分别是resolve函数和reject函数,分别代表变更Promise状态为...
new Promise(function (resolve, reject) { throw new Error("oops!"); console.log("in promise b"); resolve(1); }) .then((res) => { return new Promise((resolve, reject) => { console.log("in promise a, get promise b res: ", res); resolve(2); }); }) .then((res) => { ...
在Promise中,resolve是一个函数,它允许我们将异步操作成功时的返回结果返回给Promise对象。可以将resolve看作是Promise中的成功回调函数。一般情况下,resolve函数接收一个参数,该参数即为异步操作成功时的返回结果。 下面是一个使用Promise的示例: ``` const promise = new Promise((resolve, reject) => { setTimeou...
resolve函数用于将Promise的状态从Pending变为Fulfilled,并返回一个结果;reject函数用于将Promise的状态从Pending变为Rejected,并返回一个错误。 下面是一个简单的示例,演示了如何使用`return new Promise`来执行一个异步操作,并返回一个结果: ```javascript function asyncFunction() { return new Promise((resolve, ...
function maybeNum() { // create a promise return new Promise((resolve, reject)=>{ ...