0

我把智慧合约有关js全写在了一个js里面,然后用页面的js调用,回调函数没有返回值。

自己写的公共js
clipboard.png

import Eos from 'eosjs';

/*getuser*/
export function getuser(getuserCallBack) {
    const result = 123456789;
    return getuserCallBack(result);
}

index.js调用

import getuser from './eosFunc';
getuser(getuserCallBack());
function getuserCallBack(result) {
    alert(result);
}

localhost运行

clipboard.png

clipboard.png

2018-08-30 提问
5 个回答
1

已采纳
export function getuser(getuserCallBack) {
    const result = 123456789;
    return getuserCallBack(result);
}
import {getuser} from './eosFunc';
export default function getuser(getuserCallBack) {
    const result = 123456789;
    return getuserCallBack(result);
}
import getuser from './eosFunc';
1

export了吗

1

getuser(getuserCallBack());

改成

getuser(getuserCallBack);
1

首先 @说好的一血呢 他说的对
原因呢 我们用带类型系统的写法(flow/ts)去看待就很清晰了

function getuser(getuserCallBack: function):any {
    const result = 123456789;
    return getuserCallBack(result);
}

function getuserCallBack(result: any):void {
    alert(result);
}

很显然getuser方法接受的参数类型应该是function 而你填的却是getuserCallBack() 意即getuserCallBack函数的执行结果,也就是void
所以,报错

0

将原来共有函数function getuser改为 var getuser = function之后可以调用,但是公有函数的return值获取不到。。。

撰写答案

推广链接