我应该使用 ContractPromise 代替 Promise 来实现 AssemblyScript 中的 NEAR nft-implementation 吗?

Should I use ContractPromise as a substitute of Promise for a NEAR nft-implementation in AssemblyScript?

我正在尝试在 NEAR 中使用 near-sdk-as 在 AssemblyScript 中创建我自己的 NFT 实现。我遵循 Non-Fungible Token (NEP-171) 协议规范(版本 1.0.1),其中一个函数具有此签名,return 是 Promise

function nft_transfer_call(
  receiver_id: string,
  token_id: string,
  approval_id: number|null,
  memo: string|null,
  msg: string,
): Promise {}

目前,据我所知,AssemblyScript doesn't implement a Promise,所以我想知道我是否应该使用 near-sdk-as 中的 ContractPromise

我打算在函数中“恐慌”,所以 return 类型可能无关紧要,但问题仍然存在。

是的,没错,你说的是 NEAR 上跨合约调用的合约承诺

您可以在这里了解更多关于跨合约调用的信息:https://github.com/near-examples/cross-contract-calls

请记住,虽然 near-sdk-rsnear-sdk-as 都使用“承诺”一词,但这与 JavaScript 中的承诺不同。