我们有的时候需要调用函数返回一个Promise
,例如腾讯云点播vod-js-sdk-v6
在实例化云点播new TcVod()
的时候必须传入一个Promise
,此时我们就可以通过函数包装,调用得时候拿到Promise
函数,因为直接创建Promise
函数会立即调用执行,所以必须得用函数包装一层。
// 定义一个函数,该函数返回一个 Promise
function createProcessStringFunction(str) {
return function() {
return new Promise((resolve, reject) => {
// 在这里可以对传入的字符串进行处理
// 这里简单地将字符串原样返回
resolve(str);
});
};
}
// 外部传入的字符串
const externalString = "这是从外部传入的字符串";
// 创建函数并传入外部字符串
const processStringFunction = createProcessStringFunction(externalString);
// 调用返回的函数,得到函数,该函数内部是一个 Promise
const processStringPromise = processStringFunction();
// 处理 Promise 的结果
processStringPromise
.then(result => {
console.log('处理后的字符串:', result);
})
.catch(error => {
console.error('处理字符串时出错:', error);
});
另外你也可以使用async
的简约写法
export const getSignature = async () => {
return new Promise((resolve, reject) => {
// 省略其它...
resolve(signature); // 返回签名
});
};
const tcVod = new TcVod({
getSignature: getSignature, // 前文中所述的获取上传签名的函数,直接通过Promise传入c
});
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。