Typescript 承诺的返还价值
我错过了一些承诺的概念(在TS中)。我不明白为什么控制台上没有打印以下代码,即Typescript 承诺的返还价值,typescript,promise,Typescript,Promise,我错过了一些承诺的概念(在TS中)。我不明白为什么控制台上没有打印以下代码,即222参数data const p : Promise<number> = new Promise<number>(()=>{console.log(1); return 222;}) .then((data)=>{ console.log(data) return 43; }); const p:Promise= 新承诺(()=>{console
222
参数data
const p : Promise<number> =
new Promise<number>(()=>{console.log(1); return 222;})
.then((data)=>{
console.log(data)
return 43;
});
const p:Promise=
新承诺(()=>{console.log(1);返回222;})
。然后((数据)=>{
console.log(数据)
返回43;
});
它只打印
1
,而不是1
,然后打印222
。谢谢。您需要解决承诺:
const p : Promise<number> =
new Promise<number>((resolve)=>{
console.log(1);
resolve(222);}
)
.then(
(data) =>{
console.log(data);
return 43;
});
const p:Promise=
新承诺((决议)=>{
控制台日志(1);
决议(222);}
)
.那么(
(数据)=>{
控制台日志(数据);
返回43;
});
承诺不返回值,而是用值进行解析:
new Promise<number>((resolve, reject) => {
console.log(1);
resolve(2);
}).then((data) => console.log(data));
新承诺((解决、拒绝)=>{
控制台日志(1);
决心(2);
}).然后((数据)=>console.log(数据));
承诺是一种异步操作
const p : Promise<number> =
new Promise<number>((resolve, reject)=>{
//do some operations here, and the desired output is ready, say result = 5;
resolve(result)
//or if you hit an error you can get the error obj, e and
reject(e)
});
你看过文件了吗?
resolve
有一条红色下划线。没有编译。@J.Doe Arash遗漏了一个参数,所以我添加了它。创建Promise
时的回调包含两个参数:一个用于解析Promise
的函数和一个用于拒绝它的函数。
p()
.then((resolvedResult:number)=>console.log(resolvedResult),(rejectedError)=>console.log(rejectedError))