请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

6-9 面试题:自定义守卫如何判断 Promise 类型

function fetchData(): Promise<void> {
    return new Promise((resolve, reject) => {
        resolve();
    })
}

function isPromise(value: any): value is Promise<any> {
    return value instanceof Promise;
}

// 使用自定义守卫来检查 fetchResult 是否为 Promise 类型
const fetchResult = fetchData();
if (isPromise(fetchResult)) {
    fetchResult.then(data => {
        // 在这里可以安全地访问 data
    });
}

正在回答 回答被采纳积分+3

2回答

媳妇的号我来学 2024-01-09 16:27:58
const promise = <any>Promise.resolve()
const isPromise = (p: any): p is Promise<any> => {
return Object.prototype.toString.call(p) === '[object Promise]'
}

if (isPromise(promise)) {
promise.then()
} else {
//不是Promise
}


0 回复 有任何疑惑可以回复我~
keviny79 2023-03-23 17:41:54

可以的,正确

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信