diff --git a/index.js b/index.js index 5d1ca37..fd72e3a 100644 --- a/index.js +++ b/index.js @@ -3,36 +3,30 @@ */ import {NativeModules, NativeAppEventEmitter} from 'react-native'; -import promisify from 'es6-promisify'; const {WeiboAPI} = NativeModules; -// Used only with promisify. Transform callback to promise result. -function translateError(err, result) { - if (!err) { - return this.resolve(result); - } - if (typeof err === 'object') { - if (err instanceof Error) { - return this.reject(ret); - } - return this.reject(Object.assign(new Error(err.message), { errCode: err.errCode })); - } else if (typeof err === 'string') { - return this.reject(new Error(err)); - } - this.reject(Object.assign(new Error(), { origin: err })); -} - function wrapApi(nativeFunc) { if (!nativeFunc) { return undefined; } - const promisified = promisify(nativeFunc, translateError); return (...args) => { - return promisified(...args); + return new Promise((resolve, reject) => { + nativeFunc.apply(null, [ + ...args, + (error, result) => { + if (!error) { + return resolve(result); + } + if (typeof error === 'string') { + return reject(new Error(error)); + } + reject(error); + }, + ]); + }); }; } - // Save callback and wait for future event. let savedCallback = undefined; function waitForResponse(type) { diff --git a/package.json b/package.json index 5bc592b..da00089 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-weibo", - "version": "3.0.4", + "version": "3.0.5", "description": "新浪微博登录、分享模块", "main": "index.js", "scripts": { @@ -24,8 +24,5 @@ "bugs": { "url": "https://github.com/reactnativecn/react-native-weibo/issues" }, - "homepage": "https://github.com/reactnativecn/react-native-weibo#readme", - "dependencies": { - "es6-promisify": "^3.0.0" - } + "homepage": "https://github.com/reactnativecn/react-native-weibo#readme" }